package com.bana.fvs.protocol;

import com.bana.fvs.model.FogArea;

public class NoticeWeatherStatus08 {

    public int getId()
    {
        return 0x08;
    }

    public FogArea toModel(byte[] buffer) {

        FogArea weather=new FogArea();
        weather.setJcybsm(buffer[1]);

        byte[] ascBuffer=new byte[buffer.length-4];
        System.arraycopy(buffer,3,ascBuffer,0,ascBuffer.length);

        String s=new String(ascBuffer);
        String[] datas=s.split(",");
        for(String data :datas) {
            String[] values = data.split("=");
            if (values.length == 2) {
                if (values[0].equals("Dm")) {

                    String fx=values[1].substring(0, values[1].length() - 1);
                    int value=Integer.parseInt(fx);
                    if(value>=0&&value<=10||value>=350&&value<=360)
                    {
                        fx=String.format("北风 %s",fx);
                    }
                    else if(value>10&&value<80)
                    {
                        fx=String.format("东北风 %s",fx);
                    }
                    else if(value>=80&&value<=100)
                    {
                        fx=String.format("东风 %s",fx);
                    }
                    else if(value>100&&value<170)
                    {
                        fx=String.format("东南风 %s",fx);
                    }
                    else if(value>=170&&value<=190)
                    {
                        fx=String.format("南风 %s",fx);
                    }
                    else if(value>190&&value<260)
                    {
                        fx=String.format("西南风 %s",fx);
                    }
                    else if(value>=260&&value<=280)
                    {
                        fx=String.format("西风 %s",fx);
                    }
                    else if(value>280&&value<350)
                    {
                        fx=String.format("西北风 %s",fx);
                    }
                    else
                    {
                        fx="-";
                    }
                    weather.setFx(fx);
                } else if (values[0].equals("Sm")) {
                    weather.setFs(values[1].substring(0, values[1].length() - 1));
                } else if (values[0].equals("Ta")) {
                    weather.setWd(values[1].substring(0, values[1].length() - 1));
                } else if (values[0].equals("Ua")) {
                    weather.setSd(values[1].substring(0, values[1].length() - 1));
                } else if (values[0].equals("Pa")) {
                    weather.setQy(values[1].substring(0, values[1].length() - 1));
                } else if (values[0].equals("Rc")) {
                    weather.setYl(values[1].substring(0, values[1].length() - 1));
                }
            }
        }
        return weather;
    }
}
